//切片文件，一个切片保存着一组数据
import { createSlice } from '@reduxjs/toolkit'
//createSlice这个方法封装了action、state、和reducer三大核心对象
//导出的时候需要从slice.actions中导出对应的action对象(action对象用useDispatch()得到的dispatch函数分发)
//需要导出当前切片的reducer(在store中用configureStore整合reducer)
const countSlice = createSlice({
    name:'count',
    initialState:{
        count:0
    },
    reducers:{
        //这里注意reducer内部不是一个纯函数的写法，因为createSlice内部做了处理，不需要再用以前的写法
        //注意：每创建一个reducer就会自动创建一个对应的action对象
        increment(state,action){
            state.count += action.payload;
        },
        decrement(state,action){
            state.count -= action.payload;
        }
    }
})
//层次不同，导出最好用不同的方式导出
export const {increment,decrement} = countSlice.actions
export default countSlice.reducer
